home *** CD-ROM | disk | FTP | other *** search
- #!/usr/app/bin/perl
-
- eval 'exec /usr/app/bin/perl -S $0 ${1+"$@"}'
- if 0; # not running under some shell
-
- use Gimp;
- use Gimp::Fu;
-
- #Gimp::set_trace(TRACE_ALL);
-
- register "webify",
- "Make an image suitable for the web",
- "This plug-in converts the image to indexed, with some extra options",
- "Marc Lehmann",
- "Marc Lehmann",
- "1.0",
- N_"<Image>/Filters/Web/Webify...",
- "RGB*, GRAY*",
- [
- [PF_BOOL, "new", "create a new image?", 1],
- [PF_BOOL, "transparent", "make transparent?", 1],
- [PF_COLOUR, "bg_color", "the background colour to use for transparency", "white"],
- [PF_SLIDER, "threshold", "the threshold to use for background detection", 3, [0, 255, 1]],
- [PF_INT32, "colors", "how many colours to use (0 = don't convert to indexed)", 32],
- [PF_BOOL, "autocrop", "autocrop at end?", 1],
- ],
- sub {
- my($img,$drawable,$new,$alpha,$bg,$thresh,$colours,$autocrop)=@_;
-
- $img = $img->channel_ops_duplicate if $new;
-
- eval { $img->undo_push_group_start };
-
- $drawable = $img->flatten;
-
- if ($alpha) {
- $drawable->add_alpha;
- $drawable->by_color_select($bg,$thresh,REPLACE,1,0,0,0);
- $drawable->edit_cut if $img->selection_bounds;
- }
- Plugin->autocrop($drawable) if $autocrop;
- $img->convert_indexed (2, 0, $colours, 0, 0, '') if $colours;
-
- eval { $img->undo_push_group_end };
-
- $new ? ($img->clean_all, $img) : ();
- };
-
- exit main;
-
-